package org.mspring.mlog.dao;

import org.mspring.mlog.entity.Post;
import org.mspring.platform.dao.Page;
import org.mspring.platform.dao.hibernate.IGenericDao;

/**
 *
 * @author Gao Youbo
 * @since 2014-01-05
 */
public interface PostDao extends IGenericDao<Post, Long> {

    /**
     * 根据状态删除文章
     *
     * @param status
     */
    public void deleteByStatus(String status);

    /**
     * 更新文章状态
     *
     * @param id
     * @param status
     */
    public int updateStatus(long id, String status);

    /**
     * 从t_count表调度数据，更新文章views
     */
    public int updateViews();

    /**
     * 更新文章的回复数量
     *
     * @return
     */
    public int updateReplys();

    /**
     * 根据分类分页查询
     *
     * @param page
     * @param catalog
     * @return
     */
    public Page<Post> listByCatalog(Page<Post> page, long catalog);

    /**
     * 根据tag分页查询
     *
     * @param page
     * @param tag
     * @return
     */
    public Page<Post> listByTag(Page<Post> page, long tag);

    /**
     * 统计总共有多少文章，只统计状态为已发布的
     *
     * @return
     */
    public long countPost();
}
